package com.aliyun.messagemgt.repository.mappers;

import com.aliyun.messagemgt.dto.SmsQuota;
import com.aliyun.messagemgt.dto.vo.SmsQuotaRequestVO;
import com.aliyun.messagemgt.entities.SmsQuotaEntity;
import com.aliyun.messagemgt.entities.SmsQuotaMsgSourceEntity;

import java.util.List;

/**
 * 短信配额mapper
 *
 * @author byp
 * @date 2020/7/13
 */
public interface SmsQuotaMapper {

    /**
     * 插入 短信配额数据
     *
     * @param smsQuota 短信配额类
     * @return int
     */
    int insert(SmsQuota smsQuota);

    /**
     * 更新短信配额
     *
     * @param smsQuota 短信配额类
     * @return int
     */
    int update(SmsQuota smsQuota);

    /**
     * 查询短信配额列表
     *
     * @param smsQuotaRequestVO 查询类
     * @return list
     */
    List<SmsQuotaMsgSourceEntity> querySmsQuotaList(SmsQuotaRequestVO smsQuotaRequestVO);

    /**
     * 根据消息源id和生效状态查询短信配额
     *
     * @param msgSourceId 消息源UUID
     * @param status      生效状态
     * @return smsQuota
     */
    SmsQuotaEntity queryQuotaByMsgSourceIdAndStatus(String msgSourceId, Integer status);

    /**
     * 根据生效状态查询短信配额列表
     *
     * @param status 生效状态
     * @return list
     */
    List<SmsQuotaEntity> queryQuotaByStatus(Integer status);
}
